前言
对于一个移动应用来说,对用户敏感信息的保护,意义重大。常见的密码保护手段有:
对称秘钥加密,非对称秘钥加密以及各种散列计算。
对称秘钥加密常用的有:aes、des等,非对称秘钥常见的有:rsa等,散列计算常用的有md5、sha256等。
这些算法在flutter中有吗?笔者带着疑问搜索了一下pub和github,发现了一些库,不敢藏私,在这边给大家分享一下。
常用算法库
这个库涵盖了
SHA-1
SHA-256
MD5
HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)
使用起来也是非常简单:
import 'package:crypto/crypto.dart';
var digest = sha1.convert(bytes);
这个库涵盖了:
SHA-1
SHA-256
使用方式:
var c1 = new Crypt.sha256("p@ssw0rd");
这个库采用了原生库集成的方式。
这个库涵盖了
AES/CBC/PKCS5/Random IVs/HMAC-SHA256
使用方式:
final cryptor = new PlatformStringCryptor();
final String key = await cryptor.generateRandomKey();
final password = "user_provided_password";
final String salt = await cryptor.generateSalt();
final String key = await crypto.generateKeyFromPassword(password, salt);
总结
截止到本文发布的日期:2018-09-18,在pub和git上面发布的flutter加密库支持了
AES / SHA-256 / SHA-1 / MD5 / HMAC
这些算法,那么des和rsa这两种比较常见的算法暂时还没有找到。
当然这篇文章肯定有疏漏,希望找到其他实现算法的同学不吝告知,不胜感激。
如果大家在实际开发过程中需要使用这些没有实现的算法,而又实在找不到的话,建议参考flutter_string_encryption的方式,直接封装原生库的成果拿来使用,原生上面的成熟库已经被大家使用验证了n年了,肯定是没错的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。